The present invention relates in general to new and improved methods of symptom compression and in particular to a symptom compression method for diagnosing integrated logical networks, microprocessors and the like.
Large-scale integration circuits such as microprocessors and similar devices are well known in the art today and are finding wide utilization in digital data handling systems and apparatus. Problems arise with respect to the checking of such logical circuits to assure that they operate correctly. Many of these problems stem from the complexity and difficulty of carrying out such an operation, conditioned by the complexity of the circuit under test.
Early in the development of the art, computers were built using discrete components. These components, consisting of diodes, transistors, capacitors, and resistors, were electrically connected into relatively simple electrical networks to perform elementary logical operations. The further interconnection of such networks into more complex circuits, including complete electronic data processing systems, enabled the early user to perform complex logical functions. As a rule, these discrete components were mounted on printed circuit boards, each board containing a limited number of components and a limited number of elementary logic function networks.
In the early days of the computer, the distinction between combinatory and sequential networks was clear, e.g. between networks where the logical value at the output terminals is exclusively dependent on the value of input signals and networks where the logical value at the output terminals is further dependent on the history, or on the logical sequence of electrical circuits, through which the network has passed. For a combinatory network it is possible to check for correct operation by assuring that a predetermined combination of input signals produces a corresponding predetermined combination of output signals. Where a number of stimulations occur independently of each other in a sequential network, it is essential to know the history of the network in order to check its operation. A diagnostic operation thus requires that an ordered sequence of test stimulations be applied, starting from a predetermined initial status.
Thus, even in the early days of the computer, the checking of the correct operation of a sequential network for possible network faults presented a relatively difficult task. However, the task was simplified by the fact that discrete components, having accessible terminals both at the component level as well as the level of the printed circuit board which then contained relatively simple networks, permitted these difficulties to be overcome using relatively simple tools. Correct operation could be ascertained either by checking the individual components, or by checking the individual networks on the printed circuit board.
The subsequent use of integrated circuits of greater and greater complexity, up to the present utilization of fully integrated logical networks and microprocessors, has brought the difficulty of such an approach to the fore and has necessitated the adoption of more sophisticated test procedures which require the stimulation of the entire network input according to diagnostic programs and the monitoring of output signal patterns. The test procedures in present day use can be classified into four basic categories:
1. Computer simulation: The logical network or microprocessor to be tested is subjected to a diagnostice stimulation program. The same program is performed by a computer which simulates the circuital behaviour of the logical network and generates output signals. PA1 Unless the output signals from the network and those from the computer during the program execution are equal, a fault is detected. PA1 2. Comparison with a standard sample or "signature testing": The logical network or microprocessor to be tested is subjected to a diagnostic stimulation program. The same program is performed by a second logical network or microprocessor identical to the first one, but known to be good, which operates as a standard. PA1 If the first network operates correctly, the output of the two networks must be identical during program execution. PA1 3. "Pattern recognition testing" or comparison with a standard output pattern: The logical network to be tested is subjected to a diagnostic program and the output pattern sequence produced is compared with a standard pattern sequence corresponding to correct operation and obtained either by logical means, or by using a network identical to the one under test but known to be good and subjected to the same diagnostic program. PA1 4. "Pattern generation" or generation of subsequent test patterns: The logical network to be tested is subjected to a diagnostic program which is not unequivocally defined from the beginning, but which changes depending on the detected output pattern. PA1 The stimulating diagnostic program is generated by a control computer.
A fifth category can be added which may be defined as "self-diagnosis." In such a case, the logical network to be tested is inherently provided with a memory which stores a diagnostic program, and with circuit elements within the network which are capable of detecting failures of the network when the same is stimulated by the diagnostic program. A limit to the latter approach is obviously imposed by the fact that failures may affect the memory as well as the circuit elements which are to provide fault detection, thus rendering impossible or partially impossible the correct execution of the diagnostic program.
An aspect which must be considered in all of the above-discussed approaches is their applicability on the site, i.e. in the place where the network to be tested is installed. Clearly, any test generation which requires cumbersome equipment difficult to move (as is the case for instance in computer simulation), is excluded from consideration for all practical purposes. This is particularly so if the test operations can be carried out only in maintenance centers to which the apparatus to be tested must be transported.
Therefore, from a practical point of view, only those procedures which rely on self-diagnosis performed by the network to be tested itself, or by means of additional apparatus associated with the network, are of importance. This means that the fault symptoms must be identified by some element of the network itself, or by means of some external apparatus which is easy to move, such as symptoms dictionaries, correlation tables among symptoms and faults, and the like.
The self-diagnosis concept, however, does not entirely solve the problem of on-site fault detection. In fact, the common basis of test procedures, whatever they are, requires the execution of a diagnostic program and hence the control of subsequent output patterns which occur during execution of the diagnostic program. The detection of an error symptom, for instance the discrepancy between an actual output pattern and a correct output pattern corresponding to correct operation, even if indicative of a failure is not sufficient, in general, to identify the failure that occurred. Thus, it is necessary to consider a plurality of subsequent symptoms. The automatic monitoring and evaluation of such subsequent symptoms, as well as their synthesis, can be carried out automatically with the aid of a computer. However, this requires the use of costly and cumbersome equipment, which again is moved only with difficulty to different test sites. Thus, the utilization of such a technique is practical only in maintenance and support centers to which the network to be tested must be moved.
For equipment installed on site, any such monitoring is carried out by a maintenance operator and is therefore slow and subject to errors. This is due in part to the fact that the operation requires the diagnostic program to be halted at each symptom in order to enable the operator to read and examine it. Subsequently, once the symptom has been read, the program must be restarted; and finally the conceptual synthesis of the several symptoms in a single item of information is required to permit identification of the fault that occurred.